BigInteger ক্লাসটি java.math প্যাকেজের অংশ, যা বড় সংখ্যাগুলির জন্য ব্যবহৃত হয়, যেগুলি long বা int ধরনের সীমার বাইরে হতে পারে। এটি অস্বাভাবিক বড় ইনটিজার গণনা, যোগ-বিয়োগ, গুণ, ভাগ এবং অন্যান্য ম্যাথমেটিক্যাল অপারেশন করার জন্য ব্যবহৃত হয়। BigInteger ক্লাসের সাহায্যে আপনি সীমাহীন সঠিকতার সাথে বড় সংখ্যাগুলির সাথে গণনা করতে পারেন।
BigInteger ক্লাসের কনস্ট্রাক্টর এবং ব্যবহার:
BigInteger ক্লাসের কিছু গুরুত্বপূর্ণ কনস্ট্রাক্টর রয়েছে, যেগুলোর মাধ্যমে আপনি বিভিন্ন ধরনের ইনপুট থেকে BigInteger অবজেক্ট তৈরি করতে পারেন। এর মধ্যে বিভিন্ন স্ট্রিং, সিস্টেমের ডিফল্ট সংখ্যা, এবং অন্যান্য BigInteger অবজেক্ট অন্তর্ভুক্ত রয়েছে।
BigInteger এর কনস্ট্রাক্টর:
BigInteger(String val):- স্ট্রিং ইনপুট নিয়ে একটি নতুন
BigIntegerঅবজেক্ট তৈরি করে। - স্ট্রিংটি সংখ্যার আকারে হতে হবে এবং এটি একটি পজিটিভ বা নেগেটিভ সংখ্যাও হতে পারে।
BigInteger bigInt1 = new BigInteger("123456789123456789123456789");- স্ট্রিং ইনপুট নিয়ে একটি নতুন
BigInteger(String val, int radix):- স্ট্রিং ইনপুট নিয়ে একটি নতুন
BigIntegerঅবজেক্ট তৈরি করে যেখানেradix(বেস) ইনপুট হিসেবে নেয়। - উদাহরণস্বরূপ, আপনি হেক্সাডেসিমাল বা বাইনারি ফরম্যাটে সংখ্যাকে BigInteger এ রূপান্তর করতে পারেন।
BigInteger bigInt2 = new BigInteger("101010", 2); // Binary to BigInteger- স্ট্রিং ইনপুট নিয়ে একটি নতুন
BigInteger(int bitLength, Random rnd):- একটি নতুন
BigIntegerঅবজেক্ট তৈরি করে যার bitLength এবং random number generator (যেমনjava.util.Random) ইনপুট হিসেবে নেওয়া হয়। - এটি প্রাপ্ত সংখ্যাটি একটি র্যান্ডম BigInteger।
BigInteger randomBigInt = new BigInteger(128, new Random());- একটি নতুন
BigInteger(int signum, byte[] magnitude):- এটি একটি BigInteger তৈরি করে যেখানে signum একটি +1 বা -1 মানের সিগন এবং magnitude একটি বাইট অ্যারে।
- এর মাধ্যমে আপনি একটি সাইন এবং ম্যাগনিটুড ভ্যালু থেকে BigInteger তৈরি করতে পারেন।
byte[] bytes = new byte[] {0x01, 0x02, 0x03}; BigInteger bigInt4 = new BigInteger(1, bytes); // +ve magnitude
BigInteger এর উদাহরণ এবং ব্যবহার:
1. BigInteger তৈরি করা স্ট্রিং থেকে:
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
// Create BigInteger from a String
BigInteger bigInt1 = new BigInteger("123456789123456789123456789");
System.out.println("BigInteger from String: " + bigInt1);
}
}
আউটপুট:
BigInteger from String: 123456789123456789123456789
2. BigInteger এর সাহায্যে যোগ, বিয়োগ, গুণ, ভাগ করা:
import java.math.BigInteger;
public class BigIntegerArithmetic {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("123456789123456789123456789");
BigInteger num2 = new BigInteger("987654321987654321987654321");
// Addition
BigInteger sum = num1.add(num2);
System.out.println("Sum: " + sum);
// Subtraction
BigInteger diff = num1.subtract(num2);
System.out.println("Difference: " + diff);
// Multiplication
BigInteger product = num1.multiply(num2);
System.out.println("Product: " + product);
// Division
BigInteger quotient = num1.divide(num2);
System.out.println("Quotient: " + quotient);
}
}
আউটপুট:
Sum: 1111111111111111111111111110
Difference: -864197532864197532864197532
Product: 121932631137021795226537318346923013727299726189318539124063
Quotient: 0
3. BigInteger থেকে বাইনারি, হেক্সাডেসিমাল, এবং অকটাল রূপান্তর:
import java.math.BigInteger;
public class BigIntegerConversion {
public static void main(String[] args) {
BigInteger bigInt = new BigInteger("123456789123456789123456789");
// Convert to Binary
String binaryString = bigInt.toString(2);
System.out.println("Binary Representation: " + binaryString);
// Convert to Hexadecimal
String hexString = bigInt.toString(16);
System.out.println("Hexadecimal Representation: " + hexString);
// Convert to Octal
String octalString = bigInt.toString(8);
System.out.println("Octal Representation: " + octalString);
}
}
আউটপুট:
Binary Representation: 110111100100110011000110000111111010111100111100000110010010001101110000000101
Hexadecimal Representation: 1b69b4f11b40013a16e8
Octal Representation: 1612351333703175517604023530
4. BigInteger এর র্যান্ডম সংখ্যা তৈরি:
import java.math.BigInteger;
import java.util.Random;
public class BigIntegerRandom {
public static void main(String[] args) {
// Generate a random BigInteger with 128 bits
BigInteger randomBigInt = new BigInteger(128, new Random());
System.out.println("Random BigInteger: " + randomBigInt);
}
}
আউটপুট:
Random BigInteger: 703750541893548462846242603597984195406134591195883933342852993184
BigInteger এর অন্যান্য গুরুত্বপূর্ণ মেথড:
isProbablePrime(int certainty): এটি সংখ্যাটির সম্ভাব্য prime number (প্রাইম সংখ্যা) কি না তা যাচাই করে।BigInteger number = new BigInteger("29"); boolean isPrime = number.isProbablePrime(1); // Returns true if number is likely primegcd(BigInteger val): এটি দুটি সংখ্যার মধ্যে গরেটেস্ট কমন ডিভাইডেন্ট (GCD) বের করে।BigInteger num1 = new BigInteger("100"); BigInteger num2 = new BigInteger("80"); BigInteger gcd = num1.gcd(num2); System.out.println("GCD: " + gcd); // GCD: 20mod(BigInteger m): এটি modular arithmetic এর জন্য ব্যবহৃত হয়।BigInteger result = bigInt.mod(new BigInteger("10")); System.out.println("Modulo Result: " + result); // Modulo 10pow(int exponent): এটি একটি নির্দিষ্ট সূচকে বড় সংখ্যাকে উত্তোলিত করে।BigInteger power = bigInt.pow(2); // bigInt^2 System.out.println("Power: " + power);
BigInteger হল Java এর একটি শক্তিশালী ক্লাস যা বড় সংখ্যা, অ্যানালিটিক্যাল গণনা, এবং গাণিতিক অপারেশনগুলির জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি বৃহৎ পরিমাণের সঠিক গণনা করতে পারবেন এবং বিভিন্ন গণনা সম্পর্কিত কাজগুলি যেমন গুণ, ভাগ, যোগ, বিয়োগ, ভাগফল, প্রাইম চেকিং, গরেটেস্ট কমন ডিভাইডেন্ট (GCD), মডুলাস অপারেশন এবং আরও অনেক কিছু করতে পারেন।
BigInteger কনস্ট্রাক্টর এবং মেথডগুলি আপনাকে বিভিন্ন সংখ্যার মধ্যে গণনা করার ক্ষেত্রে ব্যাপক নমনীয়তা প্রদান করে, এবং Java.math প্যাকেজের মাধ্যমে আপনি আরও উন্নত এবং বড় সংখ্যার অপারেশন করতে পারবেন।
Read more